//
//	DocumentsUpdate.h
//	Viewer v1.0.0
//
//	Created by Julius Oklamcak on 2012-09-01.
//	Copyright © 2011-2013 Julius Oklamcak. All rights reserved.
//
//	Permission is hereby granted, free of charge, to any person obtaining a copy
//	of this software and associated documentation files (the "Software"), to deal
//	in the Software without restriction, including without limitation the rights to
//	use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
//	of the Software, and to permit persons to whom the Software is furnished to
//	do so, subject to the following conditions:
//
//	The above copyright notice and this permission notice shall be included in all
//	copies or substantial portions of the Software.
//
//	THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
//	OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
//	FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
//	AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
//	WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
//	CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//

#import <Foundation/Foundation.h>
#import "DocumentFolder.h"

@interface DocumentsUpdate : NSObject

+ (DocumentsUpdate *)sharedInstance;

+ (NSString *)documentsPath;

- (void)cancelAllOperations;

- (void)queueDocumentsUpdate;

- (BOOL)handleOpenURL:(NSURL *)theURL;

- (void)addSampleDocumentsInFolder:(DocumentFolder*)sampleFolder;

extern NSString *const DocumentsUpdateOpenNotification;
extern NSString *const DocumentsSetAnnotationModeSignNotification;
extern NSString *const DocumentsSetAnnotationModeRedPenNotification;
extern NSString *const DocumentsSetAnnotationModeOffNotification;
extern NSString *const DocumentsSetAnnotationModeEsignNotification;
extern NSString *const DocumentsSetAnnotationModeTextNotification;
extern NSString *const DocumentsSetAnnotationModeEPenNotification;
@end

#pragma mark -

//
//	DocumentsUpdateOperation class interface
//

@interface DocumentsUpdateOperation : NSOperation

extern NSString *const DocumentsUpdateNotification;
extern NSString *const DocumentsUpdateAddedObjectIDs;
extern NSString *const DocumentsUpdateDeletedObjectIDs;
extern NSString *const DocumentsUpdateBeganNotification;
extern NSString *const DocumentsUpdateEndedNotification;

@end
